Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
DatabaseMapperEx
enabling extended/explicit mapping where performance is critical versus existing that uses reflection and compiled expressions; can offer up to 40%+ improvement in some scenarios.AddMappers<TAssembly>()
andAddValidators<TAssembly>()
extension methods now also support two or three assembly specification overloads.WorkState.UserName
has been added to enable the tracking of the user that initiated the work; this is then checked to ensure that only the initiating user can interact with their own work state.ReferenceDataOrchestrator.GetByTypeAsync
has had the previous sync-over-async corrected to be fully async.Exists
andExistsAsync
which expect a non-null resultant value have been renamed toValueExists
andValueExistsAsync
to improve usability; also they areIResult
aware and will act accordingly.ETag
HTTP handling has been updated to correctly output and expect the weakW/"xxxx"
format.ETagGenerator
implementation has been further optimized to minimize unneccessary string allocations.ValueContentResult
will only generate a response header ETag (ETagGenerator
) for aGET
orHEAD
request. The underlying resultIETag.ETag
is used as-is where there is no query string; otherwise, generates as assumes query string will alter result (i.e. filtering, paging, sorting, etc.). The resultIETag.ETag
is unchanged so the consumer can still use as required for a further operation.SettingsBase
has been optimized. The internal recursion checking has been removed and as such an endless loop (StackOverflowException
) may occur where misconfigured; given frequency ofIConfiguration
usage the resulting performance is deemed more important. Additionally,prefixes
are now optional.settings.GetValue<T>("NamedProperty")
) and it using reflection to find before querying theIConfiguration
has been removed. This was not a common, or intended usage, and was somewhat magical, and finally was non-performant.